package com.miyake.client;

import java.util.List;

import com.google.gwt.user.client.rpc.AsyncCallback;
import com.miyake.client.community.CommunityProperty;
import com.miyake.client.datamanage.plugin.PluginProperty;
import com.miyake.client.profile.UserProperty;
import com.miyake.client.tools.ImageListElement;

public interface DoctorsUserServiceAsync {
	void login(String requestUri, AsyncCallback<LoginInfo> callback);

	void getAllCommunityList(Integer type,
			AsyncCallback<List<CommunityProperty>> callback);

	void createCommunity(String name, Integer type,
			AsyncCallback<String> callback);

	void deleteCommunity(String key, AsyncCallback<Void> callback);

	void addUser(String email, AsyncCallback<Void> callback);

	void isAdministrator(AsyncCallback<Boolean> callback);

	void deleteUser(String key, AsyncCallback<Void> callback);

	void getUser(String key, AsyncCallback<UserProperty> callback);

	void getMyProperty(AsyncCallback<UserProperty> callback);

	void updateMyProperty(Integer row, String value,
			AsyncCallback<Void> callback);

	void getFriendList(String email,
			AsyncCallback<List<ImageListElement>> callback);

	void getAllUsers(AsyncCallback<List<ImageListElement>> callback);

	void addFriend(String friend, AsyncCallback<Void> callback);

	void removeFriend(String key, AsyncCallback<Void> callback);

	void getCommunityList(String key, Integer type,
			AsyncCallback<List<ImageListElement>> callback);

	void removeFaceImage(String key, AsyncCallback<Void> callback);

	void getFaceImages(String key,
			AsyncCallback<List<ImageListElement>> callback);

	void setFaceImage(String key, Integer number, AsyncCallback<Void> callback);

	void addAnalysisPlugin(String key, AsyncCallback<Void> callback);

	void getAnalysisPluginList(AsyncCallback<List<PluginProperty>> callback);

	void addFilePlugin(String key, AsyncCallback<Void> callback);

	void getFilePluginList(AsyncCallback<List<PluginProperty>> callback);

	void removeAnalysisPlugin(String key, AsyncCallback<Void> callback);

	void removeFilePlugin(String key, AsyncCallback<Void> callback);

	void addChartPlugin(String key, AsyncCallback<Void> callback);

	void removeChartPlugin(String key, AsyncCallback<Void> callback);

	void getChartPluginList(AsyncCallback<List<PluginProperty>> callback);

}
